type bifNumStr = {s:string; is_float:bool; f:float; is_int:bool; i:int}
type bifVariable = string * (string list)
type bifProbability = (string * string list) * (string list * float list) list 
type bif = string * (bifVariable list) * (bifProbability list)

let s_ident str = {s=str; is_float=false; f=0.0; is_int=false; i=0}
let f_ident str = {s=str; is_float=true; f=float_of_string str; 
                   is_int=false; i=0}
let i_ident str = {s=str; is_float=true; f=float_of_string str; 
                   is_int=true; i=int_of_string str}
